Skip to content

Conversation

@lcovar
Copy link
Contributor

@lcovar lcovar commented Jan 16, 2026

Add interactive UI for parsing and inspecting Solana transactions:

  • Accepts base64-encoded transactions (standard Solana wire format)
  • Shows fee payer, blockhash, and signature count
  • Detects and displays durable nonce information
  • Decodes known instruction types with color-coded display
  • Supports URL param sharing for easy transaction sharing

Issue: BTC-2929

Ticket: BTC-2929

Screenshot 2026-01-15 at 4 34 59 PM

Add WASM bindings for Solana transaction parsing and inspection:
- Transaction.fromBase64() / fromBytes() for deserialization
- Access to fee payer, recent blockhash, account keys
- Instruction decoding with programId, accounts, and data
- AccountMeta with isSigner/isWritable flags
- Signature access by index (base58 or bytes)
- Signable payload extraction for verification

Add parseTransaction() for semantic instruction decoding:
- Decodes System Program: Transfer, CreateAccount, NonceAdvance
- Decodes Stake Program: Delegate, Deactivate, Withdraw, Authorize
- Decodes ComputeBudget: SetComputeUnitLimit, SetPriorityFee
- Decodes Token Program: Transfer, TransferChecked, CloseAccount
- Decodes ATA Program: CreateAssociatedTokenAccount
- Decodes Memo Program
- Output format matches BitGoJS TxData interface

BitGoJS compatibility tests verify identical output for:
- Transfer with memo and durable nonce
- Multi-transfer transactions (6 recipients)
- Staking activate transactions
- Token transfer transactions
- Simple unsigned transfers

Uses official Solana crates exclusively:
- solana-transaction for Transaction type
- solana-system-interface for SystemInstruction
- solana-stake-interface for StakeInstruction
- solana-compute-budget-interface for ComputeBudgetInstruction

Removed ed25519-dalek dependency (-44KB WASM, -36KB gzipped).

Replaces @solana/web3.js Transaction.from() in BitGoJS.

Ticket: BTC-2929
Add interactive UI for parsing and inspecting Solana transactions:
- Accepts base64-encoded transactions (standard Solana wire format)
- Shows fee payer, blockhash, and signature count
- Detects and displays durable nonce information
- Decodes known instruction types with color-coded display
- Supports URL param sharing for easy transaction sharing

Issue: BTC-2929

Ticket: BTC-2929
@lcovar lcovar requested a review from a team as a code owner January 16, 2026 00:31
@lcovar lcovar force-pushed the BTC-2929 branch 3 times, most recently from b466932 to aec2e4a Compare January 22, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants